#include "list.h"

/********************************** 登录 **********************************/
// 学生登录
bool Student_log_in(list_str *L, int *index)
{
    printf("欢迎来到学生登录界面\n");
    // 声明两个字符串
    char user[128];
    char pass[128];

    while (1)
    {
        // 清空字符串
        memset(user, 0, sizeof(user));
        memset(pass, 0, sizeof(pass));
        // 用户输入
        printf("请输入账号");
        scanf("%s", user);
        printf("请输入密码");
        scanf("%s", pass);
        // 循环判定
        for (size_t i = 0; i < L->len; i++)
        {
            if (!strcmp(user, L->date[i].user_name))
            {
                if (!strcmp(pass, L->date[i].password))
                {
                    *index = i;
                    return true;
                }
            }
        }
    }
}

// 老师登录
bool Teacher_log_in(list_str *L)
{
    printf("欢迎来到老师登录界面\n");
    // 声明两个字符串
    char user[128];
    char pass[128];

    while (1)
    {
        // 清空字符串
        memset(user, 0, sizeof(user));
        memset(pass, 0, sizeof(pass));
        // 用户输入
        printf("请输入账号");
        scanf("%s", user);
        printf("请输入密码");
        scanf("%s", pass);
        // 循环判定
        for (size_t i = 0; i < L->len; i++)
        {
            if (!strcmp(user, L->date[i].user_name))
            {
                if (!strcmp(pass, L->date[i].password))
                {
                    return true;
                }
            }
        }
    }
}

// 初始化
void list_init(list_str **L)
{
    // 创建动态内存
    (*L) = (list_str *)malloc(sizeof(list_str));
    if (NULL == (*L))
    {
        printf("创建失败\n");
        exit(-1);
    }

    // 初始化数据
    (*L)->len = 0;

    return;
}

// 增
bool list_add(list_str *L, stu_user date)
{
    // 判定是否为空
    if (NULL == L)
    {
        printf("传入顺序表为空\n");
        exit(-1);
    }

    // 是否越界
    if (MAX_LEN <= L->len)
    {
        printf("学生已经满了\n");
        return false;
    }

    // 插入操作
    L->date[L->len] = date;

    // 迭代长度
    L->len++;
}

// 删
bool list_del(list_str *L)
{
    // 判定是否为空
    if (NULL == L)
    {
        printf("传入顺序表为空\n");
        exit(-1);
    }

    // 是否没有学生了
    if (-1 >= L->len)
    {
        printf("学生已经满了\n");
        return false;
    }

    // 删除尾部学生
    L->len--;
}

// 老师改  姓名....
bool list_Teacher_alter(list_str *L)
{
}

// 老师查
bool list_Teacher_find(list_str *L)
{
}

// 学生查  查自己
bool list_Student_find(list_str *L, stu_user date)
{
}

// 成绩排序
bool list_sort(list_str *L)
{
}

// 遍历程序
void list_printf(list_str *L)
{
    if (NULL == L)
    {
        printf("传入顺序表为空\n");
        exit(-1);
    }

    for (size_t i = 0; i < L->len; i++)
    {
        printf("%s\t%s\t%s\t%s\t%d\t%d\t%d\n",
               L->date[i].user_name, L->date[i].password,
               L->date[i].name, L->date[i].sex, L->date[i].id,
               L->date[i].age, L->date[i].soc);
    }
}

// 释放顺序表
void list_free(list_str **L)
{
}
